package com.probox.common.core.annotation;

import com.probox.common.core.validator.LongLengthValidator;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;

/**
 * @author panmou
 * @date 2022-05-18
 * 用于实现任何长度的校验
 */
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
//指定了当前注解使用哪个校验类来进行校验。
@Constraint(validatedBy = {LongLengthValidator.class})
public @interface LongLength {

    // 最小长度
    int min() default 0;

    // 最大长度
    int max() default 0;

    //默认错误消息
    String message() default "长度不符合";

    //分组
    Class<?>[] groups() default {};

    //负载
    Class<? extends Payload>[] payload() default {};
}
